Advancements in computing devices and digital image editing technology have led to a variety of innovations in providing tools for managing and editing digital images. For example, digital image editing systems are now able to analyze a digital image to identify matching patches within the digital image. Based on this analysis, modern digital image editing systems are also able to modify the digital image by filling a particular target region of the digital image based on the identified matching patches. For instance, conventional digital image editing systems can utilize a randomized search analysis to determine matching patches and fill target regions.
Despite these advances however, conventional digital image editing systems continue to suffer from a number of disadvantages in relation to reliability, flexibility, accuracy, and efficiency. For example, although many conventional digital image editing systems can fill a target region of a digital image, the systems rely on randomized searching and are therefore non-deterministic. Indeed, in identifying and propagating matching patch values through a region of a digital image, conventional systems generate outputs that vary from run to run such that, even based on non-varying identical input, the outputs are nevertheless unpredictable and non-deterministic. As a result, it is nearly impossible to use patch matching to recreate consistent, identical edited digital images using a conventional digital image editing system.
In addition, while conventional digital image editing systems can identify matching portions of a digital image, these systems are often inaccurate. For example, conventional systems often fill a region of a digital image with inaccurate matching patches. This can occur, for example, when conventional systems apply propagation algorithms that propagate inaccurate or outdated matching patch values to pixels within a region. For instance, conventional digital image editing systems often divide a target region into different segments and then propagate matching patch offsets within each segment. This approach, however, often results in inaccurately propagating values calculated during previous propagation iterations to pixels within the individual segments (e.g., propagating values from previous iterations in analyzing edges of a segment).
Some conventional digital image editing systems have sought to avoid this result by analyzing an entire target region of a digital image (rather than dividing the target region into segments). This approach, however, is extremely inefficient with regard to time and computer processing power because it precludes application of parallel analysis techniques. Generating and propagating matching patch values across a target region without the use of parallel processing techniques can exponentially increase the amount of time and computer resources to fill a target region within a digital image with matching patches. Indeed, without parallelism, real-time interactive user interface filling of a target region in a digital image is nearly impossible.
Moreover, even conventional digital image editing systems that utilize parallel matching patch analysis are still computationally expensive. Indeed, even when dividing a target region into segments, conventional digital image editing systems can still require a significant draw in computing resources to fill a target region and generate a modified digital image. Further, conventional systems cannot take full advantage of computing power via parallel processing to produce deterministic results regardless of the random aspect of identifying matching patches. In addition, conventional digital image editing systems that utilize parallel matching patch analysis are more computationally efficient but are not accurate or deterministic.
Thus, there are several disadvantages with regard to conventional digital image editing systems.